home *** CD-ROM | disk | FTP | other *** search
- /*
- * Bhrama Client-Server Interface 0.3
- * (c)1999 CindyG
- *
- * main.c : test application for bhrama c interface
- */
-
- #define WIN32_LEAN_AND_MEAN
- #define STRICT
- #include <windows.h>
- #include <commdlg.h>
- #include "bhrama.h"
-
- void main(void)
- {
- STARTUPINFO sinfo;
- PROCESS_INFORMATION pinfo;
- OPENFILENAME ofn;
- CHAR filename[260];
-
- /* Get the target filename */
- ZeroMemory(&ofn, sizeof(ofn));
- ofn.lStructSize = sizeof(ofn);
- ofn.lpstrFilter = "Executable Files (*.exe)\0*.exe\0All Files (*.*)\0*.*\0";
- ofn.nFilterIndex = 1;
- ofn.lpstrFile = filename;
- ofn.nMaxFile = sizeof(filename);
- ofn.lpstrTitle = "Select protected file to open";
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NONETWORKBUTTON;
- if (0 == GetOpenFileName(&ofn)) {
- return;
- }
-
- /* Create the process */
- ZeroMemory(&sinfo, sizeof(sinfo));
- sinfo.cb = sizeof(sinfo);
- if (0 == CreateProcess(NULL, filename, NULL, NULL, FALSE, CREATE_SUSPENDED | NORMAL_PRIORITY_CLASS, NULL, NULL, &sinfo, &pinfo)) {
- MessageBox(NULL, "Failed to create process", "Error", MB_ICONERROR | MB_OK);
- return;
- }
-
- /* Wait for user verification */
- MessageBox(NULL, "Select 'AutoFix PE' in the Bhrama Server.\nPress OK to dump.", "Dump", MB_OK);
-
- /* Dump the process */
- if (TRUE == bhrama_dump(pinfo.dwProcessId, 0, 0, BHRAMA_IMPORT_USE, BHRAMA_OPT_DEFAULT)) {
- /* todo: switch to ProcDump save dialog */
- MessageBox(NULL, "Dump successful.", "Joy", MB_OK | MB_ICONINFORMATION);
- } else {
- MessageBox(NULL, "Dump failed. Check if Bhrama Server is running.", "Error", MB_OK | MB_ICONERROR);
- }
-
- /* Terminate the process */
- TerminateProcess(pinfo.hProcess, -28);
- }
-
-